home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / pbwndo.zip / PWDEMO.BAS < prev    next >
BASIC Source File  |  1991-10-26  |  63KB  |  2,259 lines

  1.  $COMPILE EXE
  2. $DYNAMIC
  3.  $ERROR ALL OFF
  4.  $LIB ALL OFF
  5. $OPTION CNTLBREAK OFF
  6. $STACK 5000
  7.  $IF 0
  8.      PowerBASIC Windows Demo
  9.      PBWindows
  10.      Copr. 1990, 1991 Barry Erick
  11.  $ENDIF
  12.  
  13.  Powerbasicwindows:'a Label FOR An EXTERNAL Debugger
  14.  Version$ ="Version 2.51"
  15.  Copyright$="Copyright 1990, 1991 Barry Erick"
  16.  Member$ = " Member ASP "
  17.  Copyright1$="Certain portions Copyright  1990 Robert S. Zale"
  18.  
  19.  $IF 0
  20.      TO Compile, use PBC AS:
  21.      PBC PWdemo -CE
  22.  
  23.      IF you DO NOT declare Max.Window% BEFORE you Include
  24.      PBWindow TO any value >5, it will default TO 5 in the file.
  25.      In this demo 14 are used, AS we show 12
  26.      windows AND 2 are used in the menuing AT that time.
  27.  
  28.      Special instructions FOR USING PBWindows.PBU :
  29.      Place PbWindow.Pbu in your PBUD directory OR default directory
  30.      Place PbWindow.Inc in your INC directory OR default directory
  31.      Place, in your program, the NEXT six non-REM lines, or, at least the
  32.      Max.Window% AND AutoBuildTime% assignments AND the $INCLUDE statement.
  33.      PBWindows may have all library functions OFF AND compiler errors off.
  34.      It may be benificial TO turn Interpreted PRINT ON.
  35.      Demo version... The full version also comes with an additional program
  36.      that allows partial windows TO save memory. IF you don't scroll, zoom
  37.      OR use menus, smaller models can be used. This can be done in any
  38.      combination of the above. The demo only adds constants necessary, AND
  39.      is fully functionable AND NOT crippled in any way.
  40.  $ENDIF
  41.  
  42.  
  43.  
  44.  DEFINT A - Z
  45. $INCLUDE "PWDEMO.INC"
  46. $SEGMENT
  47.  
  48.  '[******************]
  49.  
  50.  
  51. SUB Minormpause(Numtokill%,Minlimit%,Maxlimit%,Char$)
  52. LOCAL A$,X%, A!, B!,Curmx%
  53.  'min Limit Is Lower Threshold
  54.  'max Limit Is Max Threshold
  55.  'if These Are Exceeded, then The Mouse Moved Horizontally Enough
  56.  A! = TIMER
  57.  IF Needdecon% THEN
  58.     CALL Getmouseposandbutton(But%,Xx%,Yy%)
  59.     Curmx% = Getmx%(Xx%)
  60.  END IF
  61.  DO
  62.      A$=""
  63.      B! = TIMER
  64.      IF Needdecon% THEN
  65.         Btn% = 0'left
  66.         CALL Getmouseposandbutton(But%,Xx%,Yy%)
  67.         Xx% = Getmx%(Xx%)
  68.         IF Xx% <> Curmx% THEN
  69.            IF Xx% > Maxlimit% THEN
  70.               A$=CHR$(0,77)
  71.            ELSEIF Xx% < Minlimit% THEN
  72.               A$=CHR$(0,75)
  73.            END IF
  74.         END IF
  75.         IF Leftbuttondown% THEN
  76.            DO
  77.            LOOP WHILE Leftbuttondown%
  78.            A$=CHR$(13)
  79.         END IF
  80.         IF Char$<>"" THEN
  81.            IF A$<>"" AND A$=CHR$(13) THEN
  82.               A$=Char$
  83.            END IF
  84.         END IF
  85.         END If'Decon
  86.         IF A$="" AND INSTAT THEN
  87.            A$=INKEY$
  88.         ELSEIF INSTAT THEN
  89.            Dum$=INKEY$
  90.         END IF
  91.         IF A$<>"" THEN
  92.            Keyhit$ = A$
  93.            IF Char$ = CHR$(255) THEN EXIT Loop'Exit LOOP ON ANY KEY
  94.            IF A$ = Char$ THEN EXIT LOOP
  95.         END IF
  96.     LOOP UNTIL B! => (A! + %autotime +AutoFudge%)
  97.     FOR X% = 1 TO Numtokill%'12
  98.         CALL Removebox
  99.     NEXT
  100. END SUB
  101.  
  102.  '[******************]
  103.  
  104.  
  105. SUB Pause(Numtokill%)
  106. SHARED Wpt%
  107. LOCAL A$,X%, A!, B!
  108.  IF Ega% THEN
  109.     Lns% = 34
  110.  ELSEIF Vga% THEN
  111.     Lns% = 42
  112.  ELSE
  113.     Lns% = 21
  114.  END IF
  115.  IF Needdecon% THEN
  116.     CALL Makebox(Lns%,51,4,28,%black,%white,2,0,0,-1,-1)
  117.     CALL Ctrbox(2,"or Click Mouse")
  118.  ELSE
  119.     CALL Makebox(Lns%,51,3,28,%black,%white,2,0,0,-1,-1)
  120.  END IF
  121.  CALL Ctrbox(1,"Press Spacebar to continue")
  122.  DO
  123.      A$=Inkey$'empty  Keystroke Buffer
  124.  LOOP UNTIL A$=""
  125.  A! = TIMER
  126.  DO
  127.      B! = TIMER
  128.      IF INSTAT  THEN
  129.         A$=INKEY$
  130.         IF A$=" " THEN EXIT LOOP
  131.      END IF
  132.      IF Needdecon% THEN
  133.         IF Leftbuttondown% THEN
  134.            DO
  135.            LOOP WHILE Leftbuttondown%
  136.            EXIT LOOP
  137.         END IF
  138.      END IF
  139.  
  140.  LOOP UNTIL B! => A! + %autotime + Autofudge%
  141.  FOR X% = 1 TO Numtokill%+1'plus One , Because This Is A WINDOW
  142.      CALL Removebox
  143.  NEXT
  144. END SUB
  145.  
  146. SUB Screen1(Finished%)'main Title
  147. SHARED Wpt%,About%,Mouseirq%,Mouseversion@,Mousetype$,Ver$,Os$,Version$
  148. LOCAL X%,Y%
  149.  Origwpt% = Wpt%
  150.  IF Ega% THEN
  151.     Lns% = 8
  152.     Lnn% = 14
  153.     Lnm% = 19
  154.     Ln4% = 6
  155.  ELSEIF Vga% THEN
  156.     Lns% = 12
  157.     Lnn% = 18
  158.     Lnm% = 23
  159.     Ln4% = 10
  160.  ELSE
  161.     Lns% = 4
  162.     Lnn% = 10
  163.     Lnm% = 15
  164.     Ln4% = 3
  165.  END IF
  166.  CALL Makebox(Lns%,21,6,40,%black,%white,1,4,0,-1,-1)
  167.  CALL Boxtitle(6,Version$,-1,-1)
  168.  IF Finished% THEN
  169.     CALL Ctrbox(1,"Thanks for Viewing")
  170.  END IF
  171.  IF About THEN
  172.     CALL Ctrbox(4,"Shareware. Source and Manual - $25")
  173.     L1% = 1
  174.  ELSE
  175.     L1% = 2
  176.  END IF
  177.  
  178.  CALL Ctrbox(L1,"Mouseable Windows  for")
  179.  CALL Ctrbox(L1+1,"PowerBASIC")
  180.  IF Finished% THEN
  181.     CALL Ctrbox(4,"-Power and Speed-")
  182.  END IF
  183.  IF Iscolr% THEN
  184.     Bkc% = %red
  185.     Bbk% = %blue
  186.  ELSE
  187.     Bkc% = %black
  188.     Bbk% = %black
  189.  END IF
  190.  
  191.  CALL Makebox(Lnn%,18,4,46,%brightwhite,Bkc%,0,4,0,-1,-1)
  192.  CALL Ctrbox(1,"Copyright 1990,1991 Barry Erick, ASP Member")
  193.  CALL Ctrbox(2,"PowerBASIC Copyright 1990 Robert S. Zale")
  194.  
  195.  IF NOT Finished% AND NOT About% THEN
  196.     CALL Makebox(Lnm%,9,10,64,%brightwhite,Bbk%,2,4,0,-1,-1)
  197.     CALL Makebox(Ln4%,2,10,15,%brightwhite,Bbk%,2,4,0,-1,-1)
  198.     CALL Makebox(Ln4%,65,10,15,%brightwhite,Bbk%,2,4,0,-1,-1)'memory Window
  199.     CALL Bootmemory(Memory%,J%)
  200.     CALL Prtbox(1,2,"Mem:" + STR$(Memory%)+"k")
  201.     CALL Prtbox(2,2,"Free:"+Using$("###.#",(FRE(-1)*.001))+"k")
  202.     J$ = STR$(Whatcpu%)
  203.     CALL Prtbox(3,2,"80"+LTrim$(J$)+" CPU")
  204.     IF Coproc% THEN Msg$=" " ELSE Msg$="No "
  205.     CALL Prtbox(4,2,Msg$+"co-proc")
  206.     IF Emsexists% THEN
  207.        CALL Prtbox(5,4,"EMS:")
  208.        CALL Prtbox(6,3,"Base:"+HEX$(Emsbase%))
  209.        CALL Totalemspages(I%,Emsmem%,I%,I%)
  210.        CALL Prtbox(7,3,"Mem:"+STR$(Emsmem)+"k")
  211.        CALL Prtbox(8,3,"Ver:"+EmsVersion$)
  212.     ELSE
  213.        CALL Prtbox(4,4,"No EMS")
  214.     END IF
  215.     DECR Wpt%
  216.     IF Needdecon% THEN
  217.        CALL Prtbox(1,3,"Mouse Info:")
  218.        CALL Prtbox(2,2,Mousetype$+" Mouse")
  219.        A$=STR$(A%\256)+"."+LTRIM$(STR$(A% MOD 256))
  220.        CALL Prtbox(3,2,"Version"+STR$(Mouseversion@))
  221.        CALL Prtbox(4,2,"Uses IRQ"+STR$(Mouseirq%))
  222.     ELSE
  223.        CALL Prtbox(2,2,"No Mouse")
  224.     END IF
  225.     J%=Cdroms%
  226.     IF J% >0 THEN
  227.        J$=STR$(J%)+" CD-Rom"
  228.        IF J% > 1 THEN J$=J$+"s"
  229.     ELSE
  230.        J$="No CD-Roms"
  231.     END IF
  232.     CALL Prtbox(5,2,J$)
  233.     DECR Wpt
  234.     V$=Dosversion$
  235.     V$=Os$+ver$+v$
  236.     CALL Prtbox(1,2,V$)
  237.     Ll% = 2
  238.     IF Desqview% THEN
  239.        J$=""
  240.     ELSE
  241.        J$="not"
  242.     END IF
  243.     CALL Prtbox(Ll%,2,"Desqview is "+j$+" active")
  244.     INCR Ll%
  245.     J% = Win386%
  246.     SELECT CASE J% MOD 256
  247.            CASE 0,&h80
  248.                 J$="not running"
  249.            CASE 1,-1
  250.                 J$="Version 2.0"
  251.            CASE ELSE
  252.                 J$="Version "+Ltrim$(STR$(J% MOD 256))+"."+Ltrim$(STR$(J%\256))
  253.     END SELECT
  254.     CALL Prtbox(Ll%,2,"Windows 386 is "+j$)
  255.     INCR Ll%
  256.     IF Dosappend% <> 0 THEN
  257.        J$=""
  258.     ELSE
  259.        J$= "not "
  260.     END IF
  261.     CALL Prtbox(Ll%,2,"DOS Append is "+j$+"resident")
  262.     INCR Ll%
  263.     IF Dosprint% THEN
  264.        J$=""
  265.     ELSE
  266.        J$="not "
  267.     END IF
  268.     CALL Prtbox(Ll%,2,"DOS Print is "+j$+"resident")
  269.     INCR Ll%
  270.     IF Dosassign% THEN
  271.        J$=""
  272.     ELSE
  273.        J$="not "
  274.     END IF
  275.     CALL Prtbox(Ll%,2,"DOS Assign is "+j$+"active")
  276.     INCR Ll%
  277.     IF Dosshare% THEN
  278.        J$=""
  279.     ELSE
  280.        J$="not "
  281.     END IF
  282.     CALL Prtbox(Ll%,2,"DOS Share is "+j$+"resident")
  283.     INCR Ll%
  284.     CALL Prtbox(Ll%,2,"Current Path:"+CurDir$)
  285.     Ll%=1
  286.     IF Vgaok% THEN
  287.        J$="VGA"
  288.     ELSEIF Egaok% THEN
  289.        J$="EGA"
  290.     ELSEIF Cgaok% THEN
  291.        J$="CGA"
  292.     ELSEIF NOT Iscolor% THEN
  293.        J$="Mono"
  294.     END IF
  295.     CALL Prtbox(Ll%,42,J$ +" Video Adapter")
  296.     INCR Ll%
  297.     CALL Prtbox(Ll%,42,Colorormono$+" Video Mode")
  298.     INCR Ll%
  299.     CALL Prtbox(Ll%,42,"Vid Base: "+HEX$(Screensegment)+"h")
  300.     INCR Ll%
  301.     IF Comports% = 0 THEN
  302.        J$="No"
  303.     ELSE
  304.        J$=LTRIM$(STR$(Comports%))
  305.     END IF
  306.     CALL Prtbox(Ll%,42,"Com Ports: "+j$)
  307.     INCR Ll%
  308.     CALL Prtbox(Ll%,42,"Printers:"+Str$(Printers))
  309.     INCR Ll%
  310.     CALL Prtbox(Ll%,42,"Drive "+left$(Curdir$,2))
  311.     Dr%=0
  312.     CALL Getdriveinfo(Dr%,J&,K&)
  313.     INCR Ll%
  314.     CALL Prtbox(Ll%,42,USING$("Total:###,###,###",J&))
  315.     INCR Ll%
  316.     CALL Prtbox(Ll%,42,USING$(" Free:###,###,###",K& ))
  317.  END IF
  318.  IF Finished% AND Iscolr% THEN
  319.     DECR Wpt%
  320.     FOR Y% = 7 TO 0 STEP -1
  321.         FOR X% = 0 TO 15
  322.             CALL Recolor(X%,Y%,-1,-1)
  323.             ' It Happens So Fast That We Have To Delay
  324.             DELAY .05
  325.         NEXT
  326.     NEXT
  327.     INCR Wpt%
  328.  ELSEIF About% THEN
  329.     CALL Pause(1)
  330.  ELSE
  331.     IF INSTAT THEN
  332.        WHILE INKEY$<>"" :WEND
  333.     END IF
  334.     CALL Boxtitle(5,"Any Key to continue",-1,-1)'delay 8
  335.     IF Needdecon% THEN
  336.        CALL Boxtitle(5,"Click or any key to start",-1,-1)
  337.     END IF
  338.     INCR Wpt,2
  339.     DO
  340.         IF Needdecon% THEN
  341.            IF Leftbuttondown% THEN
  342.               DO
  343.               LOOP UNTIL NOT Leftbuttondown%
  344.               EXIT LOOP
  345.            END IF
  346.         END IF
  347.         IF INSTAT THEN
  348.            J$=INKEY$
  349.            EXIT LOOP
  350.         END IF
  351.     LOOP
  352.  END IF
  353.  
  354.  DO UNTIL Wpt% = Origwpt%
  355.      CALL Removebox
  356.  LOOP
  357. END SUB
  358.  
  359.  '[******************]
  360.  
  361. SUB Screen2'scroll
  362. LOCAL X%,Cf,Cb,Cbf,Cbb
  363.  IF NOT Iscolr% THEN
  364.     Cf  = %white
  365.     Cf1 = %white
  366.     Cbb = %white
  367.     Cbbb= %black
  368.     Brdc= %black
  369.  ELSE
  370.     Cf  = %green
  371.     Cf1 = %black
  372.     Cbb = %red
  373.     Cbbb= %white
  374.     Brdc= %white
  375.  END IF
  376.  CALL Makebox(11,25,5,34,Cf1,Cbbb,3,0,0,-1,Brdc)
  377.  CALL Ctrbox(1,"PowerBASIC - The Fast Compiler")
  378.  CALL Ctrbox(2," ")
  379.  CALL Ctrbox(3,"Windows")
  380.  CALL Pause(1)
  381.  CALL Makebox(4,17,9,46,Cf,%black,3,0,0,Cbb,%black)
  382.  CALL Prtbox(1,2,"▒   ▒  ▒▒▒  ▒   ▒ ▒▒▒▒   ▒▒▒  ▒   ▒  ▒▒▒▒ ")
  383.  CALL Prtbox(2,2,"▒   ▒   ▒   ▒▒  ▒  ▒  ▒ ▒▒ ▒▒ ▒   ▒ ▒   ▒ ")
  384.  CALL Prtbox(3,2,"▒   ▒   ▒   ▒ ▒ ▒  ▒  ▒ ▒   ▒ ▒   ▒ ▒▒    ")
  385.  CALL Prtbox(4,2,"▒ ▒ ▒   ▒   ▒ ▒ ▒  ▒  ▒ ▒   ▒ ▒ ▒ ▒  ▒▒▒  ")
  386.  CALL Prtbox(5,2,"▒ ▒ ▒   ▒   ▒ ▒ ▒  ▒  ▒ ▒   ▒ ▒ ▒ ▒    ▒▒")
  387.  CALL Prtbox(6,2,"▒▒ ▒▒   ▒   ▒  ▒▒  ▒  ▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒   ▒")
  388.  CALL Prtbox(7,2,"▒▒ ▒▒  ▒▒▒  ▒   ▒ ▒▒▒▒   ▒▒▒  ▒▒ ▒▒ ▒▒▒▒ ")
  389.  DELAY 1.25
  390.  FOR X% = 1 TO 5
  391.      CALL Boxscroll(0,-1,-1)
  392.      DELAY .03
  393.  NEXT
  394.  CALL Ctrbox(7,"Scrolling")
  395.  CALL Boxscroll(0,-1,-1)
  396.  DELAY .051
  397.  CALL Ctrbox(7,"Windows")
  398.  CALL Boxscroll(0,-1,-1)
  399.  DELAY .051
  400.  CALL Ctrbox(7,"Using")
  401.  CALL Boxscroll(0,-1,-1)
  402.  DELAY .051
  403.  CALL Ctrbox(7," PowerBASIC")
  404.  CALL Boxscroll(0,-1,-1)
  405.  DELAY .051
  406.  CALL Boxscroll(0,-1,-1)
  407.  DELAY 1.21
  408.  CALL Boxscroll(1,-1,-1)
  409.  CALL Prtbox(1,2,"██ ██  ███  █   █ ████   ███  ██ ██ ████ ")
  410.  DELAY .051
  411.  CALL Boxscroll(1,-1,-1)
  412.  CALL Prtbox(1,2,"██ ██   █   █  ██  █  █ ██ ██ ██ ██ █   █")
  413.  DELAY .051
  414.  CALL Boxscroll(1,-1,-1)
  415.  CALL Prtbox(1,2,"█ █ █   █   █ █ █  █  █ █   █ █ █ █    ██")
  416.  DELAY .051
  417.  CALL Boxscroll(1,-1,-1)
  418.  CALL Prtbox(1,2,"█ █ █   █   █ █ █  █  █ █   █ █ █ █  ███")
  419.  DELAY .051
  420.  CALL Boxscroll(1,-1,-1)
  421.  CALL Prtbox(1,2,"█   █   █   █ █ █  █  █ █   █ █   █ ██")
  422.  DELAY .051
  423.  CALL Boxscroll(1,-1,-1)
  424.  CALL Prtbox(1,2,"█   █   █   ██  █  █  █ ██ ██ █   █ █   █")
  425.  DELAY .051
  426.  CALL Boxscroll(1,-1,-1)
  427.  CALL Prtbox(1,2,"█   █  ███  █   █ ████   ███  █   █  ████ ")
  428.  DELAY .5
  429.  CALL Pause(1)
  430. END SUB
  431.  
  432.  '[******************]
  433.  
  434. SUB Screen3'windows
  435. SHARED Num$(),Zoom
  436. LOCAL Apart%,X%
  437.  Apart% = 5
  438.  IF EGA THEN
  439.     Rws1 = 10
  440.     Rws2 = 32
  441.  ELSEIF VGA THEN
  442.     Rws1 = 12
  443.     Rws2 = 35
  444.  ELSE
  445.     Rws1 = 5
  446.     Rws2 = 15
  447.  END IF
  448.  FOR X% = 1 TO 12
  449.      IF X% >6 THEN Rw% = Rws2 ELSE Rw% = Rws1
  450.      IF X% = 7 THEN
  451.         Apart% = 5
  452.         IF Zoom THEN
  453.            IF Iscolr% THEN
  454.               CALL Zoombox(Rw%,Apart%,6,10,X% MOD 8,2,0,0,X% MOD 2,-1,-1)
  455.            ELSE
  456.               CALL Zoombox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,7,0)
  457.            END IF
  458.         ELSE
  459.            IF Iscolr% THEN
  460.               CALL Makebox(Rw%,Apart%,6,10,X% MOD 8,2,0,0,X% MOD 2,-1,-1)
  461.            ELSE
  462.               CALL Makebox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,7,0)
  463.            END IF
  464.         END IF
  465.      ELSE
  466.         IF Zoom THEN
  467.            IF Iscolr% THEN
  468.               CALL Zoombox(Rw%,Apart%,6,10,X% MOD 8,7-(X% MOD 8),_
  469.  0                    ,0,X% MOD 2,-1,-1)
  470.            ELSE
  471.               CALL Zoombox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,-1,-1)
  472.            END IF
  473.         ELSE
  474.            IF Iscolr% THEN
  475.               CALL Makebox(Rw%,Apart%,6,10,X% MOD 8,7-(X% MOD 8),_
  476.  0                    ,0,X% MOD 2,-1,-1)
  477.            ELSE
  478.               CALL Makebox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,-1,-1)
  479.            END IF
  480.         END IF
  481.      END IF
  482.      CALL Ctrbox(2,"Window")
  483.      CALL Ctrbox(3,Num$(X%))
  484.      IF X%=8 AND Needdecon THEN
  485.         IF Iscolr% THEN
  486.            CALL Boxtitle(2,"Click",16,-1)
  487.         ELSE
  488.            CALL Boxtitle(2,"Click",31,0)
  489.         END IF
  490.      END IF
  491.  
  492.      IF X% = 9 THEN
  493.         IF Iscolr% THEN
  494.            IF NOT Needdecon THEN
  495.               CALL Boxtitle(2,"Press",16,-1)
  496.            ELSE
  497.               CALL Boxtitle(2,"or",16,-1)
  498.            END IF
  499.         ELSE
  500.            IF NOT Needdecon THEN
  501.               CALL Boxtitle(2,"Press",31,0)
  502.            ELSE
  503.               CALL Boxtitle(2,"or",31,0)
  504.            END IF
  505.         END IF
  506.      END IF
  507.      IF X% = 10 THEN
  508.         IF Iscolr% THEN
  509.            IF NOT Needdecon THEN
  510.               CALL Boxtitle(2,"Spacebar",16,-1)
  511.            ELSE
  512.               CALL Boxtitle(2,"Press",16,-1)
  513.            END IF
  514.         ELSE
  515.            IF NOT Needdecon THEN
  516.               CALL Boxtitle(2,"Spacebar",31,0)
  517.            ELSE
  518.               CALL Boxtitle(2,"Press",31,0)
  519.            END IF
  520.         END IF
  521.      END IF
  522.      IF X%=11 AND Needdecon THEN
  523.         IF Iscolr% THEN
  524.            CALL Boxtitle(2,"Spacebar",16,-1)
  525.         ELSE
  526.            CALL Boxtitle(2,"Spacebar",31,0)
  527.         END IF
  528.      END IF
  529.      INCR Apart% , 12
  530.  NEXT
  531.  CALL Minormpause(12,1,80," ")
  532. END SUB
  533.  
  534.  '[******************]
  535.  
  536.  
  537. SUB Screen4'frames
  538. SHARED Zoom
  539.  IF Zoom THEN
  540.     IF Iscolr% THEN
  541.        CALL Zoombox(10,25,5,30,%green,%black,0,0,0,-1,-1)
  542.     ELSE
  543.        CALL Zoombox(10,25,5,30,7,0,0,0,0,-1,-1)
  544.     END IF
  545.  ELSE
  546.     IF Iscolr% THEN
  547.        CALL Makebox(10,25,5,30,%green,%black,0,0,0,-1,-1)
  548.     ELSE
  549.        CALL Makebox(10,25,5,30,7,0,0,0,0,-1,-1)
  550.     END IF
  551.  END IF
  552.  CALL Ctrbox(2,"There are 10 Frames available:")
  553. END SUB
  554.  
  555.  '[******************]
  556.  
  557. SUB Pointers'For Frames
  558.  CALL Ctrbox(1,CHR$(24))
  559.  CALL Prtbox(3,1,CHR$(27))
  560.  CALL Prtbox(3,20,CHR$(26))
  561.  CALL Ctrbox(5,CHR$(25))
  562. END SUB
  563.  
  564.  '[******************]
  565.  
  566.  
  567. SUB Screen5'more Frames
  568. SHARED Num$(),Zoom
  569. LOCAL Bfcc,Brcc
  570.  IF Zoom THEN
  571.     IF Iscolr% THEN
  572.        CALL Zoombox(3,3,7,22,%red,%white,0,0,0,-1,-1)
  573.     ELSE
  574.        CALL Zoombox(3,3,7,22,0,7,0,0,0,-1,-1)
  575.     END IF
  576.  ELSE
  577.     IF Iscolr% THEN
  578.        CALL Makebox(3,3,7,22,%red,%white,0,0,0,-1,-1)
  579.     ELSE
  580.        CALL Makebox(3,3,7,22,0,7,0,0,0,-1,-1)
  581.     END IF
  582.  END IF
  583.  CALL Pointers
  584.  CALL Ctrbox(2,"Window")
  585.  CALL Ctrbox(3,"with")
  586.  CALL Ctrbox(4,"No Frame")
  587.  
  588.  IF Zoom THEN
  589.     IF Iscolr% THEN
  590.        CALL Zoombox(3,55,7,22,%brown,%blue,1,0,0,-1,-1)
  591.     ELSE
  592.        CALL Zoombox(3,55,7,22,0,7,1,0,0,-1,-1)
  593.     END IF
  594.  ELSE
  595.     IF Iscolr% THEN
  596.        CALL Makebox(3,55,7,22,%brown,%blue,1,0,0,-1,-1)
  597.     ELSE
  598.        CALL Makebox(3,55,7,22,0,7,1,0,0,-1,-1)
  599.     END IF
  600.  END IF
  601.  CALL Pointers
  602.  CALL Ctrbox(3,"Single")
  603.  
  604.  
  605.  
  606.  IF Zoom THEN
  607.     CALL Zoombox(17,3,7,22,%black,%white,2,0,0,-1,-1)
  608.  ELSE
  609.     CALL Makebox(17,3,7,22,%black,%white,2,0,0,-1,-1)
  610.  END IF
  611.  CALL Pointers
  612.  CALL Ctrbox(3,"Double")
  613.  
  614.  IF Iscolr% THEN
  615.     Frcc = %red
  616.     Bfcc = %cyan
  617.  ELSE
  618.     Frcc = %black
  619.     Bfcc = %white
  620.  END IF
  621.  IF Zoom THEN
  622.     CALL Zoombox(17,55,7,22,Frcc,%white,3,0,0,-1,-1)
  623.  ELSE
  624.     CALL Makebox(17,55,7,22,Frcc,%white,3,0,0,-1,-1)
  625.  END IF
  626.  CALL Pointers
  627.  CALL Ctrbox(2,"Single Horizontal")
  628.  CALL Ctrbox(4,"Double Vertical")
  629.  
  630.  
  631.  IF Zoom THEN
  632.     CALL Zoombox(17,29,7,22,%black,Bfcc,4,0,0,-1,-1)
  633.  ELSE
  634.     CALL Makebox(17,29,7,22,%black,Bfcc,4,0,0,-1,-1)
  635.  END IF
  636.  CALL Pointers
  637.  CALL Ctrbox(2,"Double Horizontal")
  638.  CALL Ctrbox(4,"Single Vertical")
  639.  
  640.  IF Zoom THEN
  641.     CALL Zoombox(3,29,7,22,%black,Bfcc,5,0,0,-1,-1)
  642.  ELSE
  643.     CALL Makebox(3,29,7,22,%black,Bfcc,5,0,0,-1,-1)
  644.  END IF
  645.  CALL Pointers
  646.  CALL Ctrbox(2,"Single Horizontal")
  647.  CALL Ctrbox(4,"No  Vertical")
  648.  DELAY .53
  649.  CALL Pause(7)
  650. END SUB
  651.  
  652.  '[******************]
  653.  
  654.  
  655. SUB Screen5A'More Frames
  656. SHARED Num$(),Zoom
  657. LOCAL Frcc,Bfcc,Ffcc
  658.  
  659.  IF Iscolr% THEN
  660.     Frcc = %red
  661.     Bfcc = %cyan
  662.  ELSE
  663.     Frcc = %black
  664.     Bfcc = %white
  665.  END IF
  666.  IF Zoom THEN
  667.     CALL Zoombox(3,3,7,22,Frcc,%white,7,0,0,-1,-1)
  668.  ELSE
  669.     CALL Makebox(3,3,7,22,Frcc,%white,7,0,0,-1,-1)
  670.  END IF
  671.  CALL Pointers
  672.  CALL Ctrbox(2,"Window")
  673.  CALL Ctrbox(3,"with")
  674.  CALL Ctrbox(4,"Solid Frame")
  675.  
  676.  IF Iscolr% THEN
  677.     Ffcc = %brown
  678.     Frcc = %blue
  679.  ELSE
  680.     Ffcc = %black
  681.     Ffcc = %white
  682.  END IF
  683.  
  684.  IF Zoom THEN
  685.     CALL Zoombox(3,55,7,22,Ffcc,Frcc,8,0,0,-1,-1)
  686.  ELSE
  687.     CALL Makebox(3,55,7,22,Ffcc,Frcc,8,0,0,-1,-1)
  688.  END IF
  689.  CALL Pointers
  690.  CALL Ctrbox(3,"Light Hatch")
  691.  
  692.  IF Zoom THEN
  693.     CALL Zoombox(17,3,7,22,%black,%white,9,0,0,-1,-1)
  694.  ELSE
  695.     CALL Makebox(17,3,7,22,%black,%white,9,0,0,-1,-1)
  696.  END IF
  697.  CALL Pointers
  698.  CALL Ctrbox(3,"Medium Hatch")
  699.  
  700.  IF Iscolr% THEN
  701.     Ffcc = %red
  702.  ELSE
  703.     Ffcc = %black
  704.  END IF
  705.  IF Zoom THEN
  706.     CALL Zoombox(17,55,7,22,Ffcc,%white,10,0,0,-1,-1)
  707.  ELSE
  708.     CALL Makebox(17,55,7,22,Ffcc,%white,10,0,0,-1,-1)
  709.  END IF
  710.  CALL Pointers
  711.  CALL Ctrbox(3,"Heavy Hatch")
  712.  IF Iscolr% THEN
  713.     Frcc = %cyan
  714.  ELSE
  715.     Frcc = %white
  716.  END IF
  717.  
  718.  IF Zoom THEN
  719.     CALL Zoombox(10,29,7,22,%black,Frcc,6,0,0,-1,-1)
  720.  ELSE
  721.     CALL Makebox(10,29,7,22,%black,Frcc,6,0,0,-1,-1)
  722.  END IF
  723.  CALL Pointers
  724.  CALL Ctrbox(2,"Double Horizontal")
  725.  CALL Ctrbox(4,"No Vertical")
  726.  
  727.  DELAY .53
  728.  CALL Pause(5)
  729. END SUB
  730.  
  731.  
  732.  '[******************]
  733.  
  734.  
  735. SUB Screen6'shadows
  736. SHARED Standalone%
  737. LOCAL Brc
  738.  IF Iscolr% THEN Bcr = %red ELSE Bcr = %black
  739.  CALL Makebox(0,1,26,80,%white,Bcr,13,0,0,-1,-1)
  740.  
  741.  CALL Ctrbox(1,"- And that Government of the People -")
  742.  CALL Ctrbox(25,"President Lincoln, Gettysburg National Cemetery,"+_
  743.       " Nov 10, 1863")
  744.  CALL Prtbox(2,0,CHR$(34)+"█████")
  745.  CALL Prtbox(3,1,"█  our score and seven years ago,  our fathers brought"+_
  746.       " forth on this continent")
  747.  CALL Prtbox(4,1,"██ a new nation conceived in liberty and dedicated to"+_
  748.       " the proposition that all")
  749.  CALL Prtbox(5,1,"█  men are  created  equal.  Now we are engaged in a"+_
  750.       " great  civil war  testing")
  751.  CALL Prtbox(6,1,"█  whether  that  nation  or any nation so conceived and"+_
  752.       " so dedicated can long")
  753.  CALL Prtbox(7,1,"endure.  We are met  on  a great  battlefield of that  war."+_
  754.       "  We have  come  to")
  755.  CALL Prtbox(8,1,"dedicate  a portion of that field  as a final resting"+_
  756.       " place for those who here")
  757.  CALL Prtbox(9,1,"gave  their lives that  that nation might live.  It is"+_
  758.       "  altogether fitting and")
  759.  IF Standalone%  THEN L% = 13 ELSE L% = 16
  760.  CALL Prtbox(10,1,"proper that we should do this.  But in a larger sense we"+_
  761.       " cannot  dedicate,  we")
  762.  CALL Prtbox(11,1,"cannot consecrate, we cannot hallow this ground. The"+_
  763.       " brave men,living and dead")
  764.  CALL Prtbox(12,1,"who struggled here  have  consecrated it  far above  our"+_
  765.       " poor  power to add or")
  766.  CALL Prtbox(L%,1,"detract.  The world will little note nor long remember"+_
  767.       " what we say here. It is")
  768.  CALL Prtbox(L%+1,1,"for us the living  rather to  be  dedicated  here to"+_
  769.       " the unfinished work which")
  770.  CALL Prtbox(L%+2,1,"they  who fought here  have thus far so nobly advanced."+_
  771.       " It is rather for us to")
  772.  CALL Prtbox(L%+3,1,"be  here  dedicated to  the  great task  remaining before us"+_
  773.       " that  from  these")
  774.  CALL Prtbox(L%+4,1,"honored dead  we take increased devotion to that cause for which"+_
  775.       " they gave the")
  776.  CALL Prtbox(L%+5,1,"last  full  measure  of devotion - that we here highly resolve"+_
  777.       " that these dead")
  778.  CALL Prtbox(L%+6,1,"shall not have died in vain, that this nation under God"+_
  779.       " shall have a new birth")
  780.  CALL Prtbox(L%+7,1,"of freedom  and that government of the people, by"+_
  781.       " the people,  for the people,")
  782.  CALL Prtbox(L%+8,1,"shall not perish from the earth."+CHR$(34))
  783.  IF NOT Standalone%  THEN
  784.     CALL Makebox(13,15,3,52,%white,Bcr,1,0,0,-1,-1)
  785.     CALL Ctrbox(1,"There are 10 Shadows available:")
  786.  ELSEIF VGA OR EGA THEN
  787.     ' Since We Have An Extra Window.. Get Above It...
  788.     IF EGA THEN
  789.        Spotln = 28
  790.     ELSEIF VGA THEN
  791.        Spotln = 33
  792.     END IF
  793.     IF Iscolr% THEN
  794.        Bcr = %cyan
  795.        Ffr = %gray
  796.     ELSE
  797.        Bcr = %black
  798.        Ffr = %white
  799.     END IF
  800.     CALL Makebox(Spotln,5,10,70,Ffr,Bcr,2,4,0,%black,%white)
  801.  
  802.     CALL Prtbox(3,5,"You can only protect your liberties in this world by")
  803.     CALL Prtbox(4,5,"protecting the other man's freedom. You can only be")
  804.     CALL Prtbox(5,5,"free if I am free.")
  805.     CALL Prtbox(6,45,"- Clarence Darrow")
  806.  END IF
  807. END SUB
  808.  
  809.  '[******************]
  810.  
  811.  
  812. SUB Screen7'more Shadows
  813. SHARED Num$(),Zoom
  814. LOCAL X%,A$,A!,B!,Fcr,Bcr
  815.  IF VGA OR EGA THEN
  816.     ' Since We Have An Extra Window.. Get Above It...
  817.     Nv = 3
  818.     IF EGA THEN
  819.        Spotln = 28
  820.     ELSEIF VGA THEN
  821.        Spotln = 33
  822.     END IF
  823.     IF Iscolr% THEN
  824.        Bcr = %cyan
  825.        Ffr = %gray
  826.     ELSE
  827.        Bcr = %black
  828.        Ffr = %white
  829.     END IF
  830.     CALL Makebox(Spotln,15,10,50,Ffr,Bcr,2,4,0,%black,%white)
  831.     IF Standalone THEN
  832.        CALL Prtbox(3,5,"You can only protect your liberties in this world by")
  833.        CALL Prtbox(4,5,"protecting the other man's freedom. You can only be")
  834.        CALL Prtbox(5,5,"free if I am free.")
  835.        CALL Prtbox(6,45,"- Clarence Darrow")
  836.     ELSE
  837.        CALL Prtbox(4,5,"God does not play dice with the Universe")
  838.        CALL Prtbox(5,30,"Einstein")
  839.     END IF
  840.  ELSE
  841.     Nv = 2
  842.  END IF
  843.  IF Iscolr% THEN Fcr = %red ELSE Fcr = %black
  844.  IF Zoom THEN
  845.     CALL Zoombox(3,3,7,22,Fcr,%white,1,0,0,-1,-1)
  846.  ELSE
  847.     CALL Makebox(3,3,7,22,Fcr,%white,1,0,0,-1,-1)
  848.  END IF
  849.  CALL Pointers
  850.  CALL Ctrbox(2,"Window")
  851.  CALL Ctrbox(3,"with")
  852.  CALL Ctrbox(4,"No Shadow")
  853.  
  854.  IF Iscolr% THEN
  855.     Fcr = %brown
  856.     Bcr = %blue
  857.  ELSE
  858.     Fcr = %black
  859.     Bcr = %white
  860.  END IF
  861.  
  862.  IF Zoom THEN
  863.     CALL Zoombox(17,55,7,22,Fcr,Bcr,1,1,0,-1,-1)
  864.  ELSE
  865.     CALL Makebox(17,55,7,22,Fcr,Bcr,1,1,0,-1,-1)
  866.  END IF
  867.  CALL Prtbox(3,1,CHR$(27))
  868.  CALL Ctrbox(5,CHR$(25))
  869.  CALL Ctrbox(2,"Left Drop")
  870.  CALL Ctrbox(3,"Solid Shadow")
  871.  
  872.  IF Zoom THEN
  873.     CALL Zoombox(10,29,7,22,%black,%white,1,2,0,-1,-1)
  874.  ELSE
  875.     CALL Makebox(10,29,7,22,%black,%white,1,2,0,-1,-1)
  876.  END IF
  877.  CALL Ctrbox(5,CHR$(25))
  878.  CALL Prtbox(3,20,CHR$(26))
  879.  CALL Ctrbox(2,"Right Drop")
  880.  CALL Ctrbox(3,"Solid Shadow")
  881.  IF Iscolr% THEN  Fcr = 20 ELSE Fcr = 31
  882.  CALL Boxtitle(2,"Press Spacebar",Fcr,7)
  883.  
  884.  IF Iscolr% THEN Fcr = %red ELSE Fcr = %black
  885.  IF Zoom THEN
  886.     CALL Zoombox(3,55,7,22,Fcr,%white,1,3,0,-1,-1)
  887.  ELSE
  888.     CALL Makebox(3,55,7,22,Fcr,%white,1,3,0,-1,-1)
  889.  END IF
  890.  CALL Prtbox(3,1,CHR$(27))
  891.  CALL Ctrbox(5,CHR$(25))
  892.  CALL Ctrbox(2,"Left Drop")
  893.  CALL Ctrbox(3,"Transparent Shadow")
  894.  
  895.  IF Iscolr% THEN Bcr = %cyan ELSE Bcr = %white
  896.  IF Zoom THEN
  897.     CALL Zoombox(17,3,7,22,%black,Bcr,1,4,0,-1,-1)
  898.  ELSE
  899.     CALL Makebox(17,3,7,22,%black,Bcr,1,4,0,-1,-1)
  900.  END IF
  901.  CALL Ctrbox(5,CHR$(25))
  902.  CALL Prtbox(3,20,CHR$(26))
  903.  CALL Ctrbox(2,"Right Drop")
  904.  CALL Ctrbox(3,"Transparent Shadow")
  905.  A! = TIMER
  906.  DO
  907.      B! = TIMER
  908.      IF INSTAT THEN
  909.         A$=INKEY$
  910.         IF A$ = " " THEN EXIT LOOP
  911.      END IF
  912.      IF Needdecon THEN
  913.         IF Leftbuttondown THEN
  914.            DO
  915.            LOOP WHILE Leftbuttondown
  916.            EXIT LOOP
  917.         END IF
  918.      END IF
  919.  LOOP UNTIL B! = > A! + %autotime + Autofudge%
  920.  FOR X% = 1 TO 5
  921.      CALL Removebox
  922.  NEXT
  923.  IF Zoom THEN
  924.     CALL Zoombox(3,55,7,22,Fcr,%white,1,5,0,-1,-1)
  925.  ELSE
  926.     CALL Makebox(3,55,7,22,Fcr,%white,1,5,0,-1,-1)
  927.  END IF
  928.  CALL Prtbox(3,1,CHR$(27))
  929.  CALL Ctrbox(5,CHR$(25))
  930.  CALL Ctrbox(2,"Left Drop")
  931.  CALL Ctrbox(3,"Light Hatch")
  932.  CALL Ctrbox(4,"Shadow")
  933.  
  934.  IF Iscolor THEN
  935.     Fcr = %brown
  936.     Bcr = %blue
  937.  ELSE
  938.     Fcr = %black
  939.     Bcr = %white
  940.  END IF
  941.  IF Zoom THEN
  942.     CALL Zoombox(3,3,7,22,Fcr,Bcr,1,6,0,-1,-1)
  943.  ELSE
  944.     CALL Makebox(3,3,7,22,Fcr,Bcr,1,6,0,-1,-1)
  945.  END IF
  946.  CALL Prtbox(3,20,CHR$(26))
  947.  CALL Ctrbox(5,CHR$(25))
  948.  CALL Ctrbox(2,"Right Drop")
  949.  CALL Ctrbox(3,"Light Hatch")
  950.  CALL Ctrbox(4,"Shadow")
  951.  
  952.  IF Zoom THEN
  953.     CALL Zoombox(17,3,7,22,%black,%white,1,7,0,-1,-1)
  954.  ELSE
  955.     CALL Makebox(17,3,7,22,%black,%white,1,7,0,-1,-1)
  956.  END IF
  957.  CALL Ctrbox(5,CHR$(25))
  958.  CALL Prtbox(3,1,CHR$(27))
  959.  CALL Ctrbox(2,"Left Drop")
  960.  CALL Ctrbox(3,"Medium Hatch")
  961.  CALL Ctrbox(4,"Shadow")
  962.  
  963.  IF Iscolr% THEN Fcr = %red ELSE Fcr = %black
  964.  IF Zoom THEN
  965.     CALL Zoombox(17,55,7,22,Fcr,%white,1,8,0,-1,-1)
  966.  ELSE
  967.     CALL Makebox(17,55,7,22,Fcr,%white,1,8,0,-1,-1)
  968.  END IF
  969.  CALL Prtbox(3,20,CHR$(26))
  970.  CALL Ctrbox(5,CHR$(25))
  971.  CALL Ctrbox(2,"Right Drop")
  972.  CALL Ctrbox(3,"Medium Hatch")
  973.  CALL Ctrbox(4,"Shadow")
  974.  
  975.  IF Iscolr% THEN Bcr = %cyan ELSE Bcr = %white
  976.  
  977.  IF Zoom THEN
  978.     CALL Zoombox(3,29,7,22,%black,Bcr,1,9,0,-1,-1)
  979.  ELSE
  980.     CALL Makebox(3,29,7,22,%black,Bcr,1,9,0,-1,-1)
  981.  END IF
  982.  CALL Ctrbox(5,CHR$(25))
  983.  CALL Prtbox(3,1,CHR$(27))
  984.  CALL Ctrbox(2,"Left Drop")
  985.  CALL Ctrbox(3,"Heavy Hatch")
  986.  CALL Ctrbox(4,"Shadow")
  987.  
  988.  IF Zoom THEN
  989.     CALL Zoombox(17,29,7,22,%black,Bcr,1,10,0,-1,-1)
  990.  ELSE
  991.     CALL Makebox(17,29,7,22,%black,Bcr,1,10,0,-1,-1)
  992.  END IF
  993.  CALL Ctrbox(5,CHR$(25))
  994.  CALL Prtbox(3,20,CHR$(26))
  995.  CALL Ctrbox(2,"Right Drop")
  996.  CALL Ctrbox(3,"Heavy Hatch")
  997.  CALL Ctrbox(4,"Shadow")
  998.  IF Iscolr% THEN  Fcr = 20 ELSE Fcr = 31
  999.  CALL Boxtitle(2,"Press Spacebar",Fcr,7)
  1000.  A! = TIMER
  1001.  DO
  1002.      B! = TIMER
  1003.      IF INSTAT THEN
  1004.         A$ = INKEY$
  1005.         IF A$ = " " THEN EXIT LOOP
  1006.      END IF
  1007.      IF Needdecon THEN
  1008.         IF Leftbuttondown THEN
  1009.            DO
  1010.            LOOP WHILE Leftbuttondown
  1011.            EXIT LOOP
  1012.         END IF
  1013.      END IF
  1014.  LOOP UNTIL B!=>A! +%AutoTime + Autofudge
  1015.  FOR X% = 1 TO 6
  1016.      CALL Removebox
  1017.  NEXT
  1018.  IF VGA OR EGA THEN DECR Wpt
  1019.  IF Iscolr% THEN
  1020.     CALL Boxtitle(6,"Press Spacebar",23,%red)
  1021.  ELSE
  1022.     CALL Boxtitle(6,"Press Spacebar",31,0)
  1023.  END IF
  1024.  IF VGA OR EGA THEN INCR Wpt
  1025.  CALL Minormpause(Nv,1,80," ")',0,0,0,0)
  1026.  
  1027. END SUB
  1028.  
  1029.  '[******************]
  1030.  
  1031.  
  1032.  
  1033. SUB Screen8'title Demo
  1034. SHARED Num$()
  1035. LOCAL A!,B!,Fcr,Fbcr,Bbcr,Bcr,Cc1,Cc2,Cc3,Bk,I
  1036.  IF Iscolr% THEN
  1037.     Fcr = %green
  1038.     Fcb = %red
  1039.  ELSE
  1040.     Fcr = %white
  1041.     Fcb = %black
  1042.  END IF
  1043.  CALL Makebox(11,28,4,51,Fcr,Fcb,0,0,0,-1,-1)
  1044.  CALL Ctrbox(1,"There are 12 Title Positions available:")
  1045.  CALL Ctrbox(2,"6 Horizontal and 6 vertical")
  1046.  IF Iscolr% THEN
  1047.     Fcr = %red
  1048.  ELSE
  1049.     Fcr = %black
  1050.  END IF
  1051.  CALL Makebox(3,35,7,28,Fcr,%white,1,0,0,%white,Fcr)
  1052.  CALL Ctrallbox(1,4,"Window")
  1053.  CALL Ctrallbox(2,4,"with")
  1054.  CALL Ctrallbox(3,4,"Horizontal")
  1055.  CALL Ctrallbox(4,4,"Titles in top and bottom")
  1056.  CALL Boxtitle(1,Num$(1),-1,-1)
  1057.  CALL Boxtitle(2,Num$(2),-1,-1)
  1058.  CALL Boxtitle(3,Num$(3),-1,-1)
  1059.  CALL Boxtitle(4,Num$(4),-1,-1)
  1060.  CALL Boxtitle(5,Num$(5),-1,-1)
  1061.  CALL Boxtitle(6,Num$(6),-1,-1)
  1062.  
  1063.  IF Iscolr% THEN
  1064.     Fbcr = %yellow
  1065.     Bbcr = %blue
  1066.  ELSE
  1067.     Fbcr = %white
  1068.     Bbcr = %black
  1069.  END IF
  1070.  CALL Makebox(14,35,9,28,%black,%white,1,1,0,Fbcr,Bbcr)
  1071.  CALL Ctrallbox(1,4,"Window")
  1072.  CALL Ctrallbox(2,4,"with")
  1073.  CALL Ctrallbox(3,4,"Horizontal and Vertical")
  1074.  CALL Ctrallbox(4,4,"Titles Centered")
  1075.  CALL Boxtitle(2,Num$(2),-1,-1)
  1076.  CALL Boxtitle(5,Num$(5),-1,-1)
  1077.  CALL Boxtitle(7,Num$(7),-1,-1)
  1078.  CALL Boxtitle(8,Num$(8),-1,-1)
  1079.  
  1080.  IF Iscolr% THEN
  1081.     Bcr = %green
  1082.     Ffcr = %red
  1083.  ELSE
  1084.     Bcr = %white
  1085.     Ffcr = %black
  1086.  END IF
  1087.  CALL Makebox(3,4,21,24,%black,Bcr,1,2,0,Ffcr,%white)
  1088.  CALL Ctrallbox(1,4,"Window")
  1089.  CALL Ctrallbox(2,4,"with")
  1090.  CALL Ctrallbox(3,4,"Vertical")
  1091.  CALL Ctrallbox(4,4,"Titles in Four Corners")
  1092.  CALL Boxtitle(9,Num$(9),-1,-1)
  1093.  CALL Boxtitle(10,Num$(10),-1,-1)
  1094.  CALL Boxtitle(11,Num$(11),-1,-1)
  1095.  CALL Boxtitle(12,Num$(12),-1,-1)
  1096.  CALL Pause(4)
  1097.  
  1098.  IF Iscolr% THEN
  1099.     Cc1 = %blue
  1100.     Cc2 = %cyan
  1101.     Cc3 = %blue
  1102.     Bk = 1
  1103.  ELSE
  1104.     Cc1 = %black
  1105.     Cc2 = %black
  1106.     Cc3 = %white
  1107.     Bk = 4
  1108.  END IF
  1109.  CALL Makebox(10,26,9,28,%white,Cc1,Bk,1,0,Cc3,Cc2)
  1110.  CALL Ctrallbox(1,6,"This demo shows")
  1111.  CALL Ctrallbox(2,6,"removal of a title")
  1112.  CALL Ctrallbox(3,6,"and restoring the")
  1113.  CALL Ctrallbox(4,6,"original border")
  1114.  CALL Ctrallbox(6,6,"Press any key to remove")
  1115.  CALL Boxtitle(2,"Watch this title",-1,-1)
  1116.  A! = TIMER
  1117.  DO
  1118.      B! = TIMER
  1119.      IF INSTAT THEN
  1120.         J$ = INKEY$
  1121.         EXIT LOOP
  1122.      END IF
  1123.      IF Needdecon THEN
  1124.         IF Leftbuttondown THEN
  1125.            WHILE Leftbuttondown : WEND
  1126.            EXIT LOOP
  1127.         END IF
  1128.      END IF
  1129.  LOOP UNTIL B! => A! + %autotime +AutoFudge%
  1130.  CALL Boxtitle(2,"",-1,-1)
  1131.  FOR I = 1 TO 6
  1132.      CALL Prteol(I,1)
  1133.  NEXT
  1134.  CALL Ctrallbox(1,1,"Notice: No title!")
  1135.  CALL Pause(1)
  1136. END SUB
  1137.  
  1138.  '[******************]
  1139.  
  1140.  
  1141. SUB Screen9'menus
  1142. SHARED Mlist$(),Num$()
  1143. LOCAL Cc1,Cc2,Barc,Textbc,Highb,Highc
  1144.  Mlist$(1) = "Onions"
  1145.  Mlist$(2) = "Beets"
  1146.  Mlist$(3) = "Peas"
  1147.  Mlist$(4) = "Tomatoes"
  1148.  Mlist$(5) = "Beans"
  1149.  Mlist$(6) = "Corn"
  1150.  Mlist$(7) = "Carrots"
  1151.  Mlist$(8) = ""
  1152.  Mitem% =1
  1153.  Bmenunum(1,1) = 2 :Bmenunum(1,2)=3
  1154.  Bmenunum(2,1) = 4 :Bmenunum(2,2)=4
  1155.  Bmenunum(3,1) = 1
  1156.  Bmenunum(5,1) = 4
  1157.  CALL Screen9A("Menu 1 has one letter$selection and a Pointer to$the"+_
  1158.       " item. Any Character(s)$may be used. Press$Enter after selecting.")
  1159.  IF Iscolr% THEN
  1160.     Cc1 = %white
  1161.     Cc2 = %blue
  1162.     Cc3 = %black
  1163.     Cc4 = %red
  1164.  ELSE
  1165.     Cc1 = %white
  1166.     Cc2 = %black
  1167.     Cc3 = Cc2
  1168.     Cc4 = Cc1
  1169.  END IF
  1170.  CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
  1171.  CALL Boxtitle(2,"Menu",-1,-1)
  1172.  IF Iscolr% THEN
  1173.     Barc = %cyan
  1174.     Textbc = %brightwhite
  1175.     Highb = -1
  1176.     Highc = %brightwhite
  1177.     Ptrcol% = %red
  1178.  ELSE
  1179.     Barc = %white
  1180.     Textbc = %brightwhite
  1181.     Highb = %black
  1182.     Highc = %brightwhite
  1183.     Ptrcol% = %brightwhite
  1184.  END IF
  1185.  
  1186.  CALL Buildmenu_
  1187.       (Mitem%,1,-1,0,Highc,Highb,Textbc,Barc,3,Mlist$(),-1,Ptrcol%)
  1188.  
  1189.  CALL Boxtitle(5,Mlist$(Mitem%)+" selected",-1,-1)
  1190.  CALL Pause(2)
  1191.  Mlist$(1) = "Power"
  1192.  Mlist$(2) = "BASIC"
  1193.  Mlist$(3) = "Is"
  1194.  Mlist$(4) = "The"
  1195.  Mlist$(5) = "Best"
  1196.  Mlist$(6) = "And"
  1197.  Mlist$(7) = "Fastest"
  1198.  Mlist$(8) = "@#$"
  1199.  CALL Screen9A("Menu 2 has first letter$and full bar. Pressing$the key"+_
  1200.       " of the first$character selects.")
  1201.  CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
  1202.  CALL Boxtitle(2,"Menu",-1,-1)
  1203.  CALL Buildmenu(Mitem%,1,-1,0,Highc,Highb,Textbc,Barc,2,Mlist$(),-1,Ptrcol%)
  1204.  CALL Boxtitle(5,Mlist$(Mitem%)+" selected",-1,-1)
  1205.  CALL Pause(2)
  1206.  Mlist$(1) = "Windows"
  1207.  Mlist$(2) = "Windows"
  1208.  Mlist$(3) = "Boxes"
  1209.  Mlist$(4) = "Both"
  1210.  Mlist$(5) = "Wonderful"
  1211.  Mlist$(6) = "Better"
  1212.  Mlist$(7) = "Fastest"
  1213.  Mlist$(8) = "@#$"
  1214.  CALL Screen9A("First letter selection.$Enter is required. If two$"+_
  1215.       "First letters are the$same, press the key again.")
  1216.  CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
  1217.  CALL Boxtitle(2,"Menu",-1,-1)
  1218.  CALL Buildmenu(Mitem%,1,-1,-1,Highc,Highb,Textbc,Barc,1,Mlist$(),-1,Ptrcol%)
  1219.  CALL Boxtitle(5,Mlist$(Mitem%)+" selected",-1,-1)
  1220.  CALL Pause(2)
  1221.  Mlist$(1) = "F1 = First"
  1222.  Mlist$(2) = "F2 = Second"
  1223.  Mlist$(3) = "Third"
  1224.  Mlist$(4) = "Fourth"
  1225.  Mlist$(5) = "Fifth"
  1226.  Mlist$(6) = "Sixth Ctrl-Q"
  1227.  Mlist$(7) = "Seventh"
  1228.  Mlist$(8) = "@#$"
  1229.  Bmenunum(1,1) = 6
  1230.  Bmenunum(2,1) = 6
  1231.  Bmenunum(4,1) = 2
  1232.  Bmenunum(5,1) = 2
  1233.  Bmenunum(6,1) = 3
  1234.  Bmenunum(7,1) = 3
  1235.  Mapkeys% = %true
  1236.  Bmenukeys$(1,1) = CHR$(0,59) :Bmenukeys$(2,1) = "F"'f1
  1237.  Bmenukeys$(1,2) = CHR$(0,60) :Bmenukeys$(2,2) = "S"'f2
  1238.  Bmenukeys$(1,3) = CHR$(17)   :Bmenukeys$(2,3) = "X"'^q
  1239.  Bmenukeys$(1,4) = CHR$(0,61) :Bmenukeys$(2,4) = CHR$(255)'exit With F3
  1240.  Hote$=Bmenukeys$(1,4)
  1241.  CALL Screen9A("Menu 2 has letter$and full bar. Pressing$the key"+_
  1242.       " of the $character or other key$indicated selects.")
  1243.  CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
  1244.  CALL Boxtitle(2,"Menu",-1,-1)
  1245.  CALL Buildmenu(Mitem%,1,-1,0,Highc,Highb,Textbc,Barc,2,Mlist$(),-1,Ptrcol%)
  1246.  IF Mitem= 0 AND Buildreturn$ = Hote$ THEN
  1247.     CALL Boxtitle(5,"Exited with F3",-1,-1)
  1248.  ELSE
  1249.     CALL Boxtitle(5,Mlist$(Mitem%),-1,-1)
  1250.  END IF
  1251.  Mapkeys% = %false
  1252.  CALL Pause(2)
  1253. END SUB
  1254.  
  1255.  '[******************]
  1256.  
  1257. SUB Screen9A(Message$)
  1258. LOCAL Mesline$(),P%,K%,Height%,X%
  1259.  Height = TALLY(Message$,"$")
  1260.  REDIM Mesline$(Height)
  1261.  FOR X = 1 TO Height
  1262.      P% = INSTR(Message$,"$")
  1263.      Mesline$(X) = LEFT$(Message$,P%-1)
  1264.      Message$ = MID$(Message$,P%+1)
  1265.  NEXT
  1266.  Mesline$(X) = Message$
  1267.  IF Iscolr% THEN
  1268.     CALL Makebox(17,3,Height+3,29,%black,%green,1,2,0,%red,%white)
  1269.  ELSE
  1270.     CALL Makebox(17,3,Height+3,29,%black,%white,1,2,0,%black,%white)
  1271.  END IF
  1272.  FOR X = 1 TO Height+1
  1273.      CALL Prtbox(X,1,Mesline$(X))
  1274.  NEXT
  1275. END SUB
  1276.  
  1277.  '[******************]
  1278.  
  1279. SUB Screen10
  1280. SHARED Standalone%,A$
  1281. LOCAL A!,B!
  1282.  Standalone% = %true
  1283.  CALL Screen6
  1284.  Standalone% = %false
  1285.  IF EGA OR VGA THEN DECR Wpt
  1286.  IF Iscolr THEN Cc3 = %black ELSE Cc3 = %brightwhite
  1287.  CALL Prtattrbox(23,55,"[Any key to Recolor]",Cc3,-1)
  1288.  A! = TIMER
  1289.  DO
  1290.      B! = TIMER
  1291.      IF INSTAT THEN
  1292.         A$ = INKEY$
  1293.         EXIT LOOP
  1294.      END IF
  1295.      IF Needdecon THEN
  1296.         IF Leftbuttondown THEN
  1297.            WHILE Leftbuttondown : WEND
  1298.            EXIT LOOP
  1299.         END IF
  1300.      END IF
  1301.  LOOP UNTIL B!=>A!+%Autotime +AutoFudge%
  1302.  IF Iscolr% THEN
  1303.     CALL Recolor(%black,%brown,-1,-1)
  1304.  ELSE
  1305.     CALL Recolor(%black,%white,-1,-1)
  1306.  END IF
  1307.  CALL Prteol(23,55)
  1308.  IF Iscolr% THEN
  1309.     CALL Prtattrbox(23,55,"[Any key to Recolor]",%red,-1)
  1310.  ELSE
  1311.     CALL Prtattrbox(23,55,"[Any key to Recolor]",15,-1)
  1312.  END IF
  1313.  A! = TIMER
  1314.  DO
  1315.      B! = TIMER
  1316.      IF INSTAT THEN
  1317.         A$ = INKEY$
  1318.         EXIT LOOP
  1319.      END IF
  1320.      IF Needdecon THEN
  1321.         IF Leftbuttondown THEN
  1322.            WHILE Leftbuttondown : WEND
  1323.            EXIT LOOP
  1324.         END IF
  1325.      END IF
  1326.  LOOP UNTIL B!=>A!+%Autotime +AutoFudge%
  1327.  IF Iscolr% THEN Cc2 = %blue ELSE Cc2 = %black
  1328.  CALL Recolor(%brightwhite,Cc2,-1,-1)
  1329.  CALL Prteol(23,55)
  1330.  IF Iscolr% THEN Cc3 = %green ELSE Cc3 = %white
  1331.  CALL Prtattrbox(23,55,"[Any key for menu]",Cc3,-1)
  1332.  A! = TIMER
  1333.  DO
  1334.      B! = TIMER
  1335.      IF INSTAT THEN
  1336.         A$ = INKEY$
  1337.         EXIT LOOP
  1338.      END IF
  1339.      IF Needdecon THEN
  1340.         IF Leftbuttondown THEN
  1341.            WHILE Leftbuttondown : WEND
  1342.            EXIT LOOP
  1343.         END IF
  1344.      END IF
  1345.  LOOP UNTIL B!=>A!+%Autotime+Autofudge%
  1346.  IF EGA OR VGA THEN
  1347.     INCR Wpt
  1348.     CALL Removebox
  1349.  END IF
  1350. END SUB
  1351.  
  1352.  '[******************]
  1353.  
  1354. SUB Screen11' Horizontal Pull Down Menu
  1355.  ' This Can Be Pulled Down And Moved With The <-- And --> Keys
  1356. LOCAL Window1$,Window2$,Window3$,Window4$
  1357. SHARED Newplace
  1358.  IF Needdecon THEN
  1359.     CALL Newsavemouse(%true,1,80)
  1360.     CALL Setlimits(Putmx(1),Putmx(80),Putmy(1),Putmy(1))
  1361.     Lastmplace = 0
  1362.  END IF
  1363.  
  1364.  Window1$ = "PBWindow Info"
  1365.  Window2$ = "System Info"
  1366.  Window3$ = "Date & Time"
  1367.  Window4$ = "Quit"
  1368.  IF Iscolr% THEN
  1369.     Atfc% = %red
  1370.     Atbc% = -1
  1371.  ELSE
  1372.     Atfc% = %white
  1373.     Atbc% = %black
  1374.  END IF
  1375.  
  1376.  ' Good For Mono And Color.. B&W; place The Windows Across The Top
  1377.  CALL Makebox(1,1,1,79,0,7,0,0,0,-1,-1)
  1378.  CALL Prtbox(0,1,Window1$)
  1379.  CALL Prtbox(0,20,Window2$)
  1380.  CALL Prtbox(0,40,Window3$)
  1381.  CALL Prtbox(0,60,Window4$)
  1382.  CALL Prtattrbox(0,1,Window1$,Atfc%,Atbc)
  1383.  Place = 1
  1384.  Fallthrough = %false
  1385.  CALL Setmousepointerpos(Putmx(10),Putmy(1))
  1386.  A$=""
  1387.  Lastmpos = 4
  1388.  Do'Big LOOP
  1389.  A! = TIMER
  1390.  Setup = %false
  1391.  DO
  1392.      A$=""
  1393.      IF Needdecon THEN
  1394.         CALL Getmouseposandbutton(I,Mpos,J)
  1395.         Mhere = Getmx(Mpos)
  1396.         SELECT CASE Mhere
  1397.                CASE 1 TO 15
  1398.                     IF Lastmpos >15 THEN
  1399.                        A$="P"
  1400.                        Lastmpos = Mhere
  1401.                        EXIT LOOP
  1402.                     END IF
  1403.                CASE 16 TO 35
  1404.                     IF Lastmpos <16 OR Lastmpos >25 THEN
  1405.                        A$="S"
  1406.                        Lastmpos = Mhere
  1407.                        EXIT LOOP
  1408.                     END IF
  1409.                CASE 36 TO 49
  1410.                     IF Lastmpos <26 OR Lastmpos >49 THEN
  1411.                        A$="D"
  1412.                        Lastmpos = Mhere
  1413.                        EXIT LOOP
  1414.                     END IF
  1415.                CASE 50 TO 69
  1416.                     IF Lastmpos <50 OR Lastmpos > 69 THEN
  1417.                        A$="Q"
  1418.                        Lastmpos = Mhere
  1419.                        EXIT LOOP
  1420.                     END IF
  1421.         END SELECT
  1422.         IF Leftbuttondown THEN
  1423.            DO
  1424.            LOOP WHILE Leftbuttondown
  1425.            A$=CHR$(13)
  1426.            EXIT LOOP
  1427.         END IF
  1428.         END If'Decon
  1429.         B! = TIMER
  1430.         IF INSTAT THEN
  1431.            A$ = INKEY$
  1432.            EXIT LOOP
  1433.         END IF
  1434.         IF NOT Setup THEN
  1435.            IF NOT Fallthrough THEN
  1436.               A$ = CHR$(13)
  1437.               Fallthrough = %true
  1438.            ELSE
  1439.               Fallthrough = %false
  1440.               A$ = CHR$(0,77)
  1441.            END IF
  1442.            Setup = %true
  1443.         END IF
  1444.     LOOP UNTIL B!=>A! +%AutoTime +AutoFudge
  1445.     Match$=UCASE$(LEFT$(Window1$,1)+LEFT$(Window2$,1)+_
  1446.            LEFT$(Window3$,1)+LEFT$(Window4$,1))
  1447.  
  1448.     IF INSTR(UCASE$(A$),ANY Match$)>0  THEN A$="$$"+UCASE$(A$)
  1449.     Newplace = %false
  1450.     Moved = %false
  1451.     Exitbigloop = %false
  1452.     DO  'moved Loop
  1453.     SELECT CASE LEN(A$)
  1454.            CASE 1
  1455.                 SELECT CASE A$
  1456.                        CASE CHR$(13)'enter  this One Will Be Screen 11
  1457.                             Moved = %false
  1458.                             IF Place = 4 THEN
  1459.                                Exitbigloop = %true
  1460.                                EXIT LOOP
  1461.                             ELSE
  1462.                                CALL Screen12(Place)
  1463.                                IF Newplace THEN
  1464.                                   A$ = Keyhit$
  1465.                                   Moved = %true
  1466.                                END IF
  1467.                             END IF
  1468.                 END SELECT
  1469.            CASE 2
  1470.                 SELECT CASE ASC(MID$(A$,2,1))
  1471.                        CASE 75' <---
  1472.                             SELECT CASE Place
  1473.                                    CASE 1
  1474.                                         CALL Prtbox(0,1,Window1$)
  1475.                                         CALL Prtattrbox(0,60,Window4$,_
  1476.                                              Atfc%,Atbc%)
  1477.                                         Place = 4
  1478.                                    CASE 2
  1479.                                         CALL Prtbox(0,20,Window2$)
  1480.                                         CALL Prtattrbox(0,1,Window1$,_
  1481.                                              Atfc%,Atbc%)
  1482.                                         DECR Place'= 1
  1483.                                    CASE 3
  1484.                                         CALL Prtbox(0,40,Window3$)
  1485.                                         CALL Prtattrbox(0,20,Window2$,_
  1486.                                              Atfc%,Atbc%)
  1487.                                         DECR Place'= 2
  1488.                                    CASE 4
  1489.                                         CALL Prtbox(0,60,Window4$)
  1490.                                         CALL Prtattrbox(0,40,Window3$,_
  1491.                                              Atfc%,Atbc%)
  1492.                                         DECR Place' = 3
  1493.                             END SELECT
  1494.                        CASE 77'--->
  1495.                             SELECT CASE Place
  1496.                                    CASE 4
  1497.                                         CALL Prtbox(0,60,Window4$)
  1498.                                         CALL Prtattrbox(0,1,Window1$,_
  1499.                                              Atfc%, Atbc%)
  1500.                                         Place = 1
  1501.                                    CASE 3
  1502.                                         CALL Prtbox(0,40,Window3$)
  1503.                                         CALL Prtattrbox(0,60,Window4$,_
  1504.                                              Atfc%,Atbc%)
  1505.                                         INCR Place' =4
  1506.                                    CASE 2
  1507.                                         CALL Prtbox(0,20,Window2$)
  1508.                                         CALL Prtattrbox(0,40,Window3$,_
  1509.                                              Atfc%,Atbc%)
  1510.                                         INCR Place'= 3
  1511.                                    CASE 1
  1512.                                         CALL Prtbox(0,1,Window1$)
  1513.                                         CALL Prtattrbox(0,20,Window2$,_
  1514.                                              Atfc%,Atbc%)
  1515.                                         INCR Place' = 2
  1516.                             END SELECT
  1517.                        CASE 71'home
  1518.                             SELECT CASE Place
  1519.                                    CASE 1'nothing.. We Are Home
  1520.                                    CASE 2
  1521.                                         CALL Prtbox(0,20,Window2$)
  1522.                                    CASE 3
  1523.                                         CALL Prtbox(0,40,Window3$)
  1524.                                    CASE 4
  1525.                                         CALL Prtbox(0,60,Window4$)
  1526.                             END SELECT
  1527.                             Place = 1
  1528.                             CALL Prtattrbox(0,1,Window1$,Atfc%,Atbc%)
  1529.                        CASE 79'end
  1530.                             SELECT CASE Place
  1531.                                    CASE 1
  1532.                                         CALL Prtbox(0,1,Window1$)
  1533.                                    CASE 2
  1534.                                         CALL Prtbox(0,20,Window2$)
  1535.                                    CASE 3
  1536.                                         CALL Prtbox(0,40,Window3$)
  1537.                                    CASE 4'nothing We Are At The END
  1538.                             END SELECT
  1539.                             CALL Prtattrbox(0,60,Window4$,Atfc%,Atbc%)
  1540.                             Place = 4
  1541.                 END SELECT
  1542.                 IF Moved THEN
  1543.                    SELECT CASE Place
  1544.                           CASE 1
  1545.                                A$ = "$$"+ LEFT$(Window1$,1)
  1546.                           CASE 2
  1547.                                A$ = "$$"+ LEFT$(Window2$,1)
  1548.                           CASE 3
  1549.                                A$ = "$$"+ LEFT$(Window3$,1)
  1550.                    END SELECT
  1551.                 END IF
  1552.            CASE 3
  1553.                 SELECT CASE Place
  1554.                        CASE 1
  1555.                             Windo$=Window1$
  1556.                             Spot = 1
  1557.                        CASE 2
  1558.                             Windo$=Window2$
  1559.                             Spot = 20
  1560.                        CASE 3
  1561.                             Windo$= Window3$
  1562.                             Spot = 40
  1563.                        CASE 4
  1564.                             Windo$ = Window4$
  1565.                             Spot = 60
  1566.                 END SELECT
  1567.                 SELECT CASE MID$(A$,3,1)
  1568.                        CASE LEFT$(Window1$,1)
  1569.                             CALL Prtbox(0,Spot,Windo$)
  1570.                             CALL Prtattrbox(0,1,Window1$,Atfc%,Atbc%)
  1571.                             Place = 1
  1572.                        CASE LEFT$(Window2$,1)
  1573.                             CALL Prtbox(0,Spot,Windo$)
  1574.                             CALL Prtattrbox(0,20,Window2$,Atfc%,Atbc%)
  1575.                             Place = 2
  1576.                        CASE LEFT$(Window3$,1)
  1577.                             CALL Prtbox(0,Spot,Windo$)
  1578.                             CALL Prtattrbox(0,40,Window3$,Atfc%,Atbc%)
  1579.                             Place = 3
  1580.                        CASE LEFT$(Window4$,1)
  1581.                             CALL Prtbox(0,Spot,Windo$)
  1582.                             CALL Prtattrbox(0,60,Window4$,Atfc%,Atbc%)
  1583.                             Place = 4
  1584.                 END SELECT
  1585.                 IF Moved THEN
  1586.                    A$ = CHR$(13)
  1587.                 END IF
  1588.     END SELECT
  1589.  LOOP UNTIL NOT Moved        'moved Loop
  1590.  LOOP UNTIL Exitbigloop'Big LOOP
  1591.  DO UNTIL Wpt% = 0
  1592.      CALL Removebox
  1593.  LOOP
  1594.  IF Needdecon THEN
  1595.     CALL Newsavemouse(%false,%false,%false)
  1596.     CALL Setlimits(Putmx(1),Putmx(80),Putmy(1),Putmy(25))
  1597.  END IF
  1598. END SUB
  1599.  
  1600.  '[******************]
  1601.  
  1602. SUB Screen12(Where)'places The Asked For Menues
  1603. LOCAL Dum$
  1604. SHARED Newplace,Mouseversion@,Mousetype$,Mouseirq%,Os$,Ver$
  1605.  IF Needdecon THEN
  1606.     Dum=Mouseclick
  1607.  END IF
  1608.  IF Iscolr% THEN
  1609.     Ofc1 = %white'Red
  1610.     Obc1 = %blue
  1611.     Obfc1 = -1
  1612.     Obbc1 = -1
  1613.     Obbc2 = %magenta
  1614.     Obfc2 = %green
  1615.     Obc2 = %cyan
  1616.     Ofc2 = %cyan
  1617.     Ofc3 = %black
  1618.     Obc3 = %cyan
  1619.     Obfc3 =%ltblue
  1620.     Obbc3 = %blue
  1621.     Ofc4 = %red
  1622.     Obc4 = %white
  1623.     Obfc4 = %black'Green
  1624.     Obbc4 = %magenta
  1625.     Ofc5 = %black
  1626.     Obc5 = %cyan
  1627.     Obfc5 = %red
  1628.     Obbc4 = %white
  1629.  ELSE
  1630.     Ofc1 = %white
  1631.     Obc1 = %black
  1632.     Obfc1 = -1
  1633.     Obbc1 = -1
  1634.     Obfc2 = %black
  1635.     Obbc2 = %white
  1636.     Obc2 = %white
  1637.     Ofc2 = %black
  1638.     Ofc3 = %black
  1639.     Obc3 = %white
  1640.     Obfc3 =%white
  1641.     Obbc3 = %black
  1642.     Ofc4 = %white
  1643.     Obc4 = %black
  1644.     Obfc4 =%white
  1645.     Obbc4 = %black
  1646.     Ofc5 = %white
  1647.     Obc5 = %black
  1648.     Obfc5 = %black
  1649.     Obbc5 = %white
  1650.  END IF
  1651.  SELECT CASE Where
  1652.         CASE 1
  1653.              'make 6 Windows
  1654.              CALL Makebox(2,2,4,17,Ofc1,Obc1,2,0,1,Obfc1,Obbc1)
  1655.              CALL Ctrbox(1,"PowerBASIC")
  1656.              CALL Ctrbox(2,"By: Robert Zale")
  1657.              CALL Makebox(6,9,2,2,Ofc2,Obc2,0,0,1,Obfc2,Obbc2)
  1658.              CALL Makebox(8,1,4,20,Ofc3,Obc3,2,2,0,Obfc3,Obbc3)
  1659.              CALL Ctrbox(1,"Distributed by:")
  1660.              CALL Ctrbox(2,"Spectra Publishing")
  1661.              CALL Makebox(12,4,2,2,Ofc2,Obc2,0,0,1,Obfc2,Obbc2)
  1662.              CALL Makebox(12,16,2,2,Ofc2,Obc2,0,0,1,Obfc2,Obbc2)
  1663.              CALL Makebox(14,1,4,20,Ofc4,Obc4,2,2,0,Obfc4,Obbc4)
  1664.              CALL Ctrbox(1,"PBWindows")
  1665.              CALL Ctrbox(2,"By: Barry Erick")
  1666.              CALL Boxtitle(5,"Press any key",-1,-1)
  1667.              CALL Minormpause(6,1,15,CHR$(255))',2,15,0,0)
  1668.              ' End Case 1
  1669.         CASE 2
  1670.              'make 1 Windows
  1671.              IF Needdecon THEN Numv = 10 ELSE Numv = 8
  1672.              Dosver$= Dosversion$
  1673.              IF Os$<>"" THEN INCR Numv
  1674.              Ll = 1
  1675.              CALL Makebox(2,19,Numv,22,Ofc5,Obc5,2,0,1,Obfc5,Obbc5)
  1676.              CALL Prtbox(Ll,2,Os$+ver$+dosver$)
  1677.              INCR Ll
  1678.              IF Os$<>"" THEN
  1679.                 CALL Prtbox(Ll,2,Os$+"Version: "+Ver$)
  1680.                 INCR Ll
  1681.              END IF
  1682.              CALL Prtbox(Ll,2,Colorormono$+" Video Mode")
  1683.              INCR Ll
  1684.              CALL Bootmemory(Memory%,I%)
  1685.              CALL Prtbox(Ll,2,"Memory:" + STR$(Memory%)+"k")
  1686.              J$ = STR$(Whatcpu%)
  1687.              INCR Ll
  1688.              CALL Prtbox(Ll,2,"A "+MID$(J$,2)+" CPU")
  1689.              INCR Ll
  1690.              IF Vgaok THEN
  1691.                 J$="VGA"
  1692.              ELSEIF Egaok THEN
  1693.                 J$="EGA"
  1694.              ELSEIF Cgaok THEN
  1695.                 J$="CGA"
  1696.              ELSEIF NOT Iscolor% THEN
  1697.                 J$="Mono"
  1698.              END IF
  1699.              CALL Prtbox(Ll,2,J$ +" Video Adapter")
  1700.              INCR Ll
  1701.              IF Needdecon THEN
  1702.                 CALL Prtbox(Ll,2,"A "+mouseType$+" Mouse")
  1703.                 A$=STR$(A\256)+"."+MID$(STR$(A MOD 256),2)
  1704.                 INCR Ll
  1705.                 CALL Prtbox(Ll,2,"Version"+STR$(Mouseversion@)+" found")
  1706.                 INCR Ll
  1707.                 CALL Prtbox(Ll,2,"It uses IRQ"+STR$(Mouseirq))
  1708.              ELSE
  1709.                 CALL Prtbox(Ll,2,"No Mouse")
  1710.              END IF
  1711.  
  1712.              CALL Boxtitle(5,"Press any key",-1,-1)
  1713.              CALL Minormpause(1,16,35,CHR$(255))',21,42,0,0)
  1714.              'end Case 2
  1715.         CASE 3
  1716.              ' Make One Window
  1717.              CALL Makebox(2,37,4,22,Ofc1,Obc1,2,0,0,-1,-1)
  1718.              CALL Ctrbox(1,LEFT$(TIME$,5)+" ")
  1719.              CALL Ctrbox(2,Weekday$+" "+Month$+" "+Day$+","+Year$)
  1720.              CALL Boxtitle(5,"Press any key",-1,-1)
  1721.              CALL Minormpause(1,36,49,CHR$(255))',38,59,0,0)
  1722.  END SELECT
  1723.  IF LEN(Keyhit$) = 2 THEN
  1724.     SELECT CASE ASC(MID$(Keyhit$,2,1))
  1725.            CASE 75,77
  1726.                 Newplace = %true
  1727.            CASE ELSE
  1728.                 Newplace = %false
  1729.                 Keyhit$=""
  1730.     END SELECT
  1731.  ELSE
  1732.     Newplace = 0
  1733.     Keyhit$ = ""
  1734.  END IF
  1735. END SUB
  1736.  
  1737. SUB Screen13'Bouncing
  1738. SHARED Wpt%,Autoit
  1739. LOCAL X%,Y%
  1740.  CALL Makebox(4,37,7,17,%black,%white,1,0,0,-1,-1)
  1741.  CALL Boxtitle(1,"Bouncing",-1,-1)
  1742.  CALL Boxtitle(5,"Any Key",-1,-1)
  1743.  
  1744.  CALL Ctrbox(1,"Windows  for")
  1745.  CALL Ctrbox(2,"PowerBASIC")
  1746.  A!=TIMER
  1747.  DO UNTIL INSTAT
  1748.      CALL Boxscroll(1,-1,-1)
  1749.      GOSUB Bouncem
  1750.      IF Outit THEN EXIT LOOP
  1751.      DELAY .03
  1752.      CALL Boxscroll(1,-1,-1)
  1753.      GOSUB Bouncem
  1754.      IF Outit THEN EXIT LOOP
  1755.      DELAY .061
  1756.      CALL Boxscroll(1,-1,-1)
  1757.      GOSUB Bouncem
  1758.      IF Outit THEN EXIT LOOP
  1759.      DELAY .0831
  1760.      CALL Boxscroll(0,-1,-1)
  1761.      GOSUB Bouncem
  1762.      IF Outit THEN EXIT LOOP
  1763.      DELAY .041
  1764.      CALL Boxscroll(0,-1,-1)
  1765.      GOSUB Bouncem
  1766.      IF Outit THEN EXIT LOOP
  1767.      DELAY .031
  1768.      CALL Boxscroll(0,-1,-1)
  1769.      GOSUB Bouncem
  1770.      IF Outit THEN EXIT LOOP
  1771.      DELAY .41
  1772.      B!=TIMER
  1773.      IF Autoit THEN
  1774.         IF B! => A! + %autotime +AutoFudge% THEN EXIT LOOP
  1775.      END IF
  1776.      GOSUB Bouncem
  1777.      IF Outit THEN EXIT LOOP
  1778.  LOOP
  1779.  WHILE INKEY$<>"" : WEND
  1780.  CALL Removebox
  1781.  EXIT SUB
  1782. Bouncem:
  1783.  IF Needdecon THEN
  1784.     IF Leftbuttondown THEN
  1785.        WHILE Leftbuttondown :WEND
  1786.        Outit=%true
  1787.     END IF
  1788.  END IF
  1789.  RETURN
  1790. END SUB
  1791.  
  1792.  '[******************]
  1793.  
  1794.  FUNCTION Dosversion$
  1795. SHARED Os$,Ver$
  1796.  REG 1,&h30*256
  1797.  CALL INTERRUPT &h21
  1798.  Al = REG(1) MOD 256
  1799.  Ah = REG(1) \ 256
  1800.  Al$ = STR$(Al)
  1801.  Ah$ = STR$(Ah)
  1802.  Dosversion$ = Al$+"."+MID$(Ah$,2,2)
  1803.  ' Check For Dr Dos.....
  1804.  J$= ENVIRON$("OS")
  1805.  IF J$="DRDOS" THEN
  1806.     Os$ = "DRDOS "
  1807.     I$= ENVIRON$("VER")
  1808.     IF I$ <> "" THEN
  1809.        Ver$ = I$
  1810.     END IF
  1811.  ELSE
  1812.     SELECT CASE REG(2)\256
  1813.            CASE 0
  1814.                 Ver$="PC-DOS"
  1815.            CASE ELSE
  1816.                 Ver$="MS-DOS"
  1817.     END SELECT
  1818.  END IF
  1819.  END FUNCTION
  1820.  
  1821.  '[******************]
  1822.  
  1823.  FUNCTION Colorormono$
  1824.  IF Iscolr% THEN
  1825.     Colorormono$ = "Color"
  1826.  ELSE
  1827.     Colorormono$ = "Mono"
  1828.  END IF
  1829.  END FUNCTION
  1830.  
  1831.  '[******************]
  1832. SUB Gettypeandversion
  1833. SHARED Mouseversion@,Mousetype$,Mouseirq%
  1834.  CALL Getmouseinfo(A,B)
  1835.  SELECT CASE B\256
  1836.         CASE 1
  1837.              B$="Bus"
  1838.         CASE 2
  1839.              B$="Serial"
  1840.         CASE 3
  1841.              B$="InPort"
  1842.         CASE 4
  1843.              B$="PS/2"
  1844.         CASE 5
  1845.              B$="H/P"
  1846.  END SELECT
  1847.  Mousetype$=B$
  1848.  Mouseversion@ = VAL(STR$(A\256)+"."+MID$(STR$(A MOD 256),2))
  1849.  Mouseirq% = B MOD 256
  1850. END SUB
  1851.  
  1852. SUB Screenmove
  1853. SHARED Wpt%,Autoit
  1854. LOCAL X%,Y%,Outit
  1855.  Outit = %false
  1856.  X% = 37
  1857.  Y% = 4
  1858.  X1% =17
  1859.  Y1% = 7
  1860.  Mousemoved% = %false
  1861.  CALL Makebox(Y%,X%,Y1%,X1%,%black,%white,1,0,0,-1,-1)
  1862.  CALL Ctrallbox(1,3,"Move This")
  1863.  CALL Ctrallbox(2,3,"ESC to Exit")
  1864.  IF Needdecon THEN
  1865.     CALL Ctrallbox(3,3,"or Right Click")
  1866.     Xj%=Putmx(X%)
  1867.     Yj%=Putmy(Y%)
  1868.     IF EGA THEN
  1869.        Mxy = 43 -y1
  1870.     ELSEIF VGA THEN
  1871.        Mxy = 50 -y1
  1872.     ELSE
  1873.        Mxy = Maxcrty-Y1
  1874.     END IF
  1875.     CALL Setlimits(Putmx(1),Putmx(Maxcrtx),Putmy(1),Putmy(Mxy))
  1876.     CALL Setmousepointerpos(Xj%,Yj%)
  1877.     CALL Readmousecounter(I,J)
  1878.     Oldmx% = Xj%
  1879.     Oldmy% = Yj%
  1880.     CALL Showmouse
  1881.  END IF
  1882.  DO
  1883.      DO
  1884.          IF Needdecon THEN
  1885.             IF Leftbuttondown THEN
  1886.                But%=0
  1887.                CALL Getmouseposandbutton(But%,Xm%,Ym%)
  1888.  
  1889.                'check For Movement While Key Is Down... drag
  1890.                Xx% = Getmx(Xm%)
  1891.                Yy% = Getmy(Ym%)
  1892.                SELECT CASE Xx%
  1893.                       CASE = > Oldmx+1
  1894.                            Oldmx = Xx
  1895.                            Oldmy = Yy
  1896.                            Mousemoved=%true
  1897.                            EXIT LOOP
  1898.                       CASE =< Oldmx-1
  1899.                            Mousemoved = %true
  1900.                            Oldmx=Xx
  1901.                            Oldmy=Yy
  1902.                            EXIT LOOP
  1903.                END SELECT
  1904.                SELECT CASE Yy%
  1905.                       CASE >Oldmy+1
  1906.                            Mousemoved=%true
  1907.                            Oldmy=Yy
  1908.                            Oldmx=Xx
  1909.                            EXIT LOOP
  1910.                       CASE <Oldmy-1
  1911.                            Mousemoved=%true
  1912.                            Oldmy=Yy
  1913.                            Oldmx=Xx
  1914.                            EXIT LOOP
  1915.                END SELECT
  1916.             END IF
  1917.          END IF
  1918.          IF INSTAT THEN
  1919.             Ane$ = INKEY$
  1920.             EXIT LOOP
  1921.          END IF
  1922.          GOSUB Movedm
  1923.      LOOP UNTIL Outit
  1924.      IF Mousemoved THEN
  1925.         X = Oldmx
  1926.         Y = Oldmy
  1927.         Mousemoved%=%false
  1928.      ELSE
  1929.         SELECT CASE LEN(Ane$)
  1930.                CASE 1
  1931.                     SELECT CASE Ane$
  1932.                            CASE CHR$(27)'esc
  1933.                                 EXIT LOOP
  1934.                            CASE CHR$(13)'cr
  1935.                                 EXIT LOOP
  1936.                     END SELECT
  1937.                CASE 2
  1938.  
  1939.                     Nope = %false
  1940.                     SELECT CASE ASC(MID$(Ane$,2,1))
  1941.                            CASE 77'rt
  1942.                                 IF X+X1 < 80 THEN
  1943.                                    INCR X
  1944.                                    Moveit = %true
  1945.                                    Mwhere = 1
  1946.                                 END IF
  1947.                            CASE 75'lt
  1948.                                 IF X>1 THEN
  1949.                                    DECR X
  1950.                                    Moveit = %true
  1951.                                    Mwhere = 2
  1952.                                 END IF
  1953.                            CASE 80'dn
  1954.                                 IF Maxy = 0 THEN Maxy=25
  1955.                                 IF Y+Y1 < Maxy THEN
  1956.                                    INCR Y
  1957.                                    Moveit = %true
  1958.                                    Mwhere = 3
  1959.                                 END IF
  1960.                            CASE 72'up
  1961.                                 IF Y > 1 THEN
  1962.                                    DECR Y
  1963.                                    Moveit = %true
  1964.                                    Mwhere = 4
  1965.                                 END IF
  1966.                     END SELECT
  1967.                CASE ELSE
  1968.                     Nope = %true
  1969.         END SELECT
  1970.      END IF
  1971.      CALL Hidemouse
  1972.      CALL Removebox
  1973.      CALL Makebox(Y,X,Y1,X1,%black,%white,1,0,0,-1,-1)
  1974.      CALL Ctrallbox(1,3,"Move This")
  1975.      CALL Ctrallbox(2,3,"ESC to Exit")
  1976.      IF Needdecon THEN CALL Ctrallbox(3,3,"or Right Click")
  1977.      CALL Showmouse
  1978.  LOOP
  1979.  IF Needdecon THEN
  1980.     CALL Setlimits(-1,I,I,I)
  1981.     CALL Hidemouse
  1982.  END IF
  1983.  CALL Removebox
  1984.  EXIT SUB
  1985. Movedm:
  1986.  IF Needdecon THEN
  1987.     IF Rightbuttondown THEN
  1988.        WHILE Rightbuttondown :WEND
  1989.        Ane$=CHR$(27)  'escape On Right Click
  1990.        Outit = %true
  1991.     END IF
  1992.  END IF
  1993.  RETURN
  1994. END SUB
  1995.  '[******************]
  1996. SUB Screenbackground
  1997.  IF Iscolr% THEN
  1998.     Atr = %white'%cyan
  1999.  ELSE
  2000.     Atr = %white
  2001.  END IF
  2002.  IF EGA THEN
  2003.     Lns = 43
  2004.     Chrs = 3440
  2005.  ELSEIF VGA THEN
  2006.     Lns = 50
  2007.     Chrs = 4000
  2008.  ELSE
  2009.     Lns = 25
  2010.     Chrs = 2000
  2011.  END IF
  2012.  CALL Fillarea(1,1,Lns,80,176,Atr)
  2013. END SUB
  2014.  
  2015.  '[******************]
  2016.  
  2017. $SEGMENT
  2018.  
  2019.  '[******************]
  2020.  
  2021.  ' For The Demo, have Englishnumbers For The Title Areas
  2022.  DIM Num$(12)
  2023.  RESTORE Englishnumbers
  2024.  FOR X% = 1 TO 12
  2025.      READ Num$(X%)
  2026.  NEXT
  2027.  
  2028.  ' Use The Users Background For The Demo
  2029.  CLS
  2030.  ' This Will Have To Change To Follw Screen Size
  2031.  LOCATE 1,1,0'turn OFF Cursor
  2032.  CALL Screenbackground
  2033.  
  2034.  CALL Date(Month$,B,C,Weekday$)
  2035.  Day$=LTRIM$(STR$(B))
  2036.  Year$=LTRIM$(STR$(C))
  2037.  IF Mouseinstalled THEN
  2038.     CALL Initmouse(Needdecon,Buttons)
  2039.     CALL Gettypeandversion
  2040.  END IF
  2041.  IF NOT Needdecon THEN Deconforbuild=%false
  2042.  COLOR %white,%black
  2043.  CALL Screen1(0)
  2044.  'make Menu List
  2045.  Lastmi% = 1
  2046.  Autoit% = %false
  2047.  Nonoise% = %true'Pbwindow.Pbu Makes This False When Started, But
  2048.  ' Let'S Keep It Quiet Here To Start
  2049.  DO
  2050.      Stickybm% = %true
  2051.      IF Mlist$(1) <> "Scroll Demo" THEN
  2052.         Mlist$(1) = "Scroll Demo"
  2053.         Mlist$(2) = "Window Demo"
  2054.         Mlist$(3) = "Frames Demo"
  2055.         Mlist$(4) = "Shadows Demo"
  2056.         Mlist$(5) = "Title Demo"
  2057.         Mlist$(6) = "Menu Demo"
  2058.         Mlist$(7) = "Noise"
  2059.         Mlist$(8) = "Recolor Demo"
  2060.         Mlist$(9) = "Zoom"
  2061.         Mlist$(10) = "Horiz Menu"
  2062.         Mlist$(11) = "About"
  2063.         Mlist$(12) = "Bouncing"
  2064.         Mlist$(13) = "Demo Move"
  2065.         Mlist$(14) = "Phone Input"
  2066.         Mlist$(16) = "Quit"
  2067.         IF Egaok OR Vgaok THEN
  2068.            Mlist$(17)=""
  2069.            Mlist$(15)="Set Ega/VGA"
  2070.         ELSE
  2071.            Mlist$(16) = ""
  2072.            Mlist$(15) = "Quit"
  2073.         END IF
  2074.         Snu% = Lastmi%
  2075.      ELSE
  2076.         Snu% = Lastmi%
  2077.      END IF
  2078.      IF Wpt>0 THEN
  2079.         DO UNTIL Wpt% = 1
  2080.             CALL Removebox
  2081.         LOOP
  2082.      END IF
  2083.      IF Wpt% = 0 THEN
  2084.         IF Egaok OR Vgaok THEN
  2085.            Lines=18
  2086.         ELSE
  2087.            Lines = 17
  2088.         END IF
  2089.         IF Iscolr% THEN
  2090.            CALL Makebox(2,2,Lines,22,%yellow,%blue,1,4,0,%blue,%white)
  2091.         ELSE
  2092.            CALL Makebox(2,2,Lines,22,%white,%black,1,1,0,%black,%white)
  2093.         END IF
  2094.         CALL Boxtitle(2,"Menu",-1,-1)
  2095.         CALL Boxtitle(5,"Select & hit Enter",-1,-1)
  2096.      END IF
  2097.      IF NOT Zoom THEN
  2098.         Mlist$(9)= "Zoom Off"
  2099.      ELSE
  2100.         Mlist$(9) = "Zoom On "
  2101.      END IF
  2102.      IF NOT Nonoise% THEN
  2103.         Mlist$(7) = "Noise On "
  2104.      ELSE
  2105.         Mlist$(7) = "Noise Off"
  2106.      END IF
  2107.      Autorun% = %true
  2108.      IF Iscolr% THEN
  2109.         CALL Buildmenu(Mitem%,Snu%,-1,-1,15,-1,4,3,1,Mlist$(),Autorun%,-1)
  2110.      ELSE
  2111.         CALL Buildmenu(Mitem%,Snu%,-1,-1,15,0,0,15,2,Mlist$(),Autorun%,-1)
  2112.      END IF
  2113.      'autorun% is A Two Way Street. on The Call, we Sent The
  2114.      'timeout Value We Wanted. returned Is The State Of Having Returned
  2115.      'automatically, or Not, %True Says We Did, %False Says We Didn'T
  2116.      IF Autorun%  THEN Autoit% = %true ELSE Autoit% = %false
  2117.      IF Autoit% THEN
  2118.         Autobuildtime% = 5'sure.. We Hit Each Time, But Lets Speed It Up
  2119.         Autofudge% = 0
  2120.      ELSE
  2121.         Autobuildtime% = Modifiedautobuildtime%
  2122.         Autofudge% = Modifiedautofudge%
  2123.      END IF
  2124.      SELECT CASE Mitem%
  2125.             CASE 1
  2126.                  CALL Screen2'scroll Demo
  2127.                  Lastmi% = Mitem%
  2128.             CASE 2
  2129.                  CALL Screen3'window Demo
  2130.                  Lastmi% = Mitem%
  2131.             CASE 3
  2132.                  CALL Screen4'frame Demo
  2133.                  CALL Screen5
  2134.                  CALL Screen5A
  2135.                  Lastmi% = Mitem%
  2136.             CASE 4
  2137.                  CALL Screen6'shadow Demo
  2138.                  CALL Screen7
  2139.                  Lastmi% = Mitem%
  2140.             CASE 5
  2141.                  CALL Screen8'title Demo
  2142.                  Lastmi% = Mitem%
  2143.             CASE 6
  2144.                  Lastmi% = Mitem%
  2145.                  CALL Screen9'menu Demo
  2146.             CASE 7
  2147.                  Nonoise% = NOT Nonoise%
  2148.                  IF NOT Nonoise% THEN
  2149.                     CALL Prtbox(7,10,"On ")
  2150.                  ELSE
  2151.                     CALL Prtbox(7,10,"Off")
  2152.                  END IF
  2153.                  CALL Screen3'window TO SOUND Noise OR NOT
  2154.                  Lastmi% = Mitem%
  2155.             CASE 8
  2156.                  CALL Screen10'Recolor
  2157.                  Lastmi% = Mitem%
  2158.             CASE 16
  2159. Quitlevel:
  2160.                  DO
  2161.                      CALL Removebox
  2162.                  LOOP UNTIL Wpt% = 0
  2163.                  CALL Screen1(-1)
  2164.                  CALL Hidemouse'For Development
  2165.                  IF VGA OR EGA THEN
  2166.                     CALL Setmode("CGA")
  2167.                  ELSE
  2168.                     CLS
  2169.                  END IF
  2170.                  END
  2171.             CASE 9
  2172.                  Zoom = NOT Zoom
  2173.                  IF NOT Zoom THEN
  2174.                     CALL Prtbox(9,9,"Off")
  2175.                  ELSE
  2176.                     CALL Prtbox(9,9,"On ")
  2177.                  END IF
  2178.                  CALL Screen4
  2179.                  CALL Screen5
  2180.                  CALL Screen5A
  2181.                  Lastmi% = Mitem%
  2182.             CASE 10
  2183.                  'horiz Menu
  2184.                  Mlist$(1)="Nothing"' To Allow Redoing It
  2185.                  DO UNTIL Wpt% = 0
  2186.                      CALL Removebox'Kill Menu
  2187.                  LOOP
  2188.                  CALL Screen11
  2189.                  Lastmi% = Mitem%
  2190.             CASE 12'Bouncing
  2191.                  CALL Screen13
  2192.                  Lastmi%=Mitem%
  2193.  
  2194.             CASE 11'About
  2195.                  Mlist$(1) = "Nothing"
  2196.                  DO UNTIL Wpt% = 0
  2197.                      CALL Removebox
  2198.                  LOOP
  2199.                  About = %true
  2200.                  CALL Screen1(0)
  2201.                  About = %false
  2202.                  Lastmi% = Mitem%
  2203.             CASE 13
  2204.                  CALL Screenmove
  2205.                  Lastmi% = Mitem%
  2206.             CASE 15
  2207.                  IF Vgaok OR Egaok THEN
  2208.                     CALL Screenupdate(%false)
  2209.                     IF VGA OR EGA THEN
  2210.                        CALL Setmode("CGA")
  2211.                     ELSE
  2212.                        CALL Setmode("VGA")
  2213.                     END IF
  2214.                     LOCATE ,,0
  2215.                     CALL Screenbackground
  2216.                     CALL Screenupdate(%true)
  2217.                     Lastmi% = Mitem
  2218.                  ELSE
  2219.                     GOTO Quitlevel
  2220.                  END IF
  2221.             CASE 14
  2222.                  CALL Screenphone
  2223.                  Lastmi%=Mitem
  2224.      END SELECT
  2225.      IF Autoit% THEN
  2226.         INCR Lastmi%
  2227.         IF Lastmi% > 12 THEN Lastmi% = 1
  2228.      END IF
  2229.  LOOP
  2230.  CALL Hidemouse'For Development
  2231.  END
  2232.  
  2233. SUB Screenupdate(How)
  2234.  'if False Save It, else Restore
  2235. STATIC Scr$
  2236.  IF NOT How THEN
  2237.     DEF SEG = Screensegment%
  2238.     IF VGA THEN
  2239.        Scr$=PEEK$(0,8000)
  2240.     ELSEIF EGA THEN
  2241.        Scr$=PEEK$(0,6880)
  2242.     ELSE
  2243.        Scr$=PEEK$(0,4000)
  2244.     END IF
  2245.  ELSE
  2246.     POKE$ 0,Scr$
  2247.     Scr$=""
  2248.  END IF
  2249. END SUB
  2250.  '[******************]
  2251.  
  2252.  
  2253. Englishnumbers:
  2254. DATA "One ", "Two ", "Three ", "Four", "Five", "Six ", "Seven ", "Eight "
  2255. DATA "Nine", "Ten ", "Eleven", "Twelve"
  2256.  
  2257.  '********************************************
  2258.  END
  2259.